package com.zhou.designParten.demo;

/**
 * 原型设计模式
 * 属于：创建型模式-对象创建型模式
 * 定义: 用一个已经创建的实例作为原型，通过复制该原型对象来创建一个和原型相同或相似的新对象
 * 应用场景: 在有些系统中，存在大量相同或相似对象的创建问题，如果用传统的构造函数来创建对象，会比较复杂且耗时耗资源，用原型模式生成对象就很高效
 * 实现:  Java 提供了对象的 clone() 方法，所以用 Java 实现原型模式很简单。
 */
public class Prototype implements Cloneable{
    public Prototype() {
        System.out.println("创建成功!");
    }

    public Prototype clone() throws CloneNotSupportedException {
        System.out.println("复制成功!");
        return (Prototype)super.clone();
    }

    public static void main(String[] args) throws CloneNotSupportedException {
        Prototype prototype1 = new Prototype();
        Prototype  prototype2 = prototype1.clone();

        System.out.println("prototype1==prototype2?"+(prototype1 == prototype2));
    }
}
